#ifndef SYMBOLTABLE_H
#define SYMBOLTABLE_H

#include "Lex.h"

class SymbolTable;

struct SymbolRecord
{
    string name; // 名字
    string kind; // 三种类型
    string type; // 具体类型
    Token* tk; // 指向tokenlist
    SymbolTable * next;
};

class SymbolTable
{
public:
    SymbolTable();
    SymbolRecord* table[512];
    int index;
    int paramcount;
    void addRecord(string name, string kind, string type, Token* tk, SymbolTable *next = NULL);
    void printTable(int layer = 0);
};


#endif // SYMBOLTABLE_H
